Джерело даних -
European Centre for Disease Prevention and Control.
Дані на 2 березня.
Рівень смертності в різних країнах

Динаміка загальної кількості смертей
Країни з кількістю смертей більше 500
Країни з кількістю смертей від 200 до 1200 + Італія додана для порівняння
Країни з кількістю смертей від 80 до 200 + Італія додана для порівняння
Європейські Країни з кількістю смертей від 10 до 81 + Італія додана для порівняння

Динаміка кількості нових смертей за день
Країни із загальною кількістю смертей більше 1200
Динаміка смертності в різних країнах - Логарифмічна шкала
Динаміка кількості випадків COVID-19
Країни з кількістю більше 10000 випадків
n too large, allowed maximum for palette Paired is 12
Returning the palette you asked for with that many colors
Країни з кількістю випадків від 3000 до 10000
n too large, allowed maximum for palette Paired is 12
Returning the palette you asked for with that many colors
Країни з кількістю випадків від 1800 до 3500
n too large, allowed maximum for palette Paired is 12
Returning the palette you asked for with that many colors
LS0tDQp0aXRsZTogItCf0L7RiNC40YDQtdC90L3RjyDQtdC/0ZbQtNC10LzRltGXIENPVklELTE5INCyINGA0ZbQt9C90LjRhSDQutGA0LDRl9C90LDRhSINCm91dHB1dDogaHRtbF9ub3RlYm9vaw0KZWRpdG9yX29wdGlvbnM6IA0KY2h1bmtfb3V0cHV0X3R5cGU6IGlubGluZQ0KLS0tDQoNCg0KDQogDQpgYGB7ciBldmFsPUZBTFNFLCBpbmNsdWRlPUZBTFNFfQ0KDQpsaWJyYXJ5KHRpZHl2ZXJzZSkNCmxpYnJhcnkobHVicmlkYXRlKQ0KbGlicmFyeShwbG90bHkpDQpsaWJyYXJ5KFJDb2xvckJyZXdlcikNCmxpYnJhcnkocmVhZHhsKQ0KbGlicmFyeShodHRyKQ0KbGlicmFyeShzY2FsZXMpDQoNCg0KYGBgDQoNCg0KDQpgYGB7ciBpbmNsdWRlPUZBTFNFfQ0KDQp1cmwgPC0gcGFzdGUoImh0dHBzOi8vd3d3LmVjZGMuZXVyb3BhLmV1L3NpdGVzL2RlZmF1bHQvZmlsZXMvZG9jdW1lbnRzL0NPVklELTE5LWdlb2dyYXBoaWMtZGlzYnRyaWJ1dGlvbi13b3JsZHdpZGUtIixmb3JtYXQoU3lzLnRpbWUoKSwgIiVZLSVtLSVkIiksICIueGxzeCIsIHNlcCA9ICIiKQ0KIA0KR0VUKHVybCwgYXV0aGVudGljYXRlKCI6IiwgIjoiLCB0eXBlPSJudGxtIiksIHdyaXRlX2Rpc2sodGYgPC0gdGVtcGZpbGUoZmlsZWV4dCA9ICIueGxzeCIpKSkNCg0KI2NybiA8LSByZWFkX2V4Y2VsKCJEOlxcRG93bmxvYWRzXFxDT1ZJRC0xOS1nZW9ncmFwaGljLWRpc2J0cmlidXRpb24td29ybGR3aWRlLTIwMjAtMDMtMjIueGxzeCIpICU+JQ0KY3JuIDwtIHJlYWRfZXhjZWwodGYpICU+JSByZW5hbWUoZGF0ZT1kYXRlUmVwLENvdW50cnk9NyxJbmZlY3RlZF9uZXc9Y2FzZXMsRGVhdGhzX25ldz1kZWF0aHMpICU+JQ0KICBtdXRhdGUoZGF0ZT1hcy5EYXRlKGRhdGUpLTEsDQogICAgICAgICBDb3VudHJ5PXN0cl9yZXBsYWNlX2FsbChDb3VudHJ5LCJfIiwiICIpLA0KICAgICAgICAgQ291bnRyeT1zdHJfcmVwbGFjZShDb3VudHJ5LCJVbml0ZWQgU3RhdGVzIG9mIEFtZXJpY2F8VW5pdGVkX1N0YXRlc19vZl9BbWVyaWNhIiwiVVMiKSwNCiAgICAgICAgIENvdW50cnk9c3RyX3JlcGxhY2UoQ291bnRyeSwiQ0FOQURBIiwiQ2FuYWRhIiksDQogICAgICAgICBDb3VudHJ5PXN0cl9yZXBsYWNlKENvdW50cnksIlVuaXRlZCBLaW5nZG9tfFVuaXRlZCBraW5nZG9tfFVuaXRlZF9LaW5nZG9tIiwiVUsiKSwNCiAgICAgICAgIENvdW50cnk9c3RyX3JlcGxhY2UoQ291bnRyeSwic3dpdHplcmxhbmQiLCJTd2l0emVybGFuZCIpLA0KICAgICAgICAgZGF0ZT1pZl9lbHNlKENvdW50cnkgJWluJSBjKCJTcGFpbiIsIkl0YWx5IiksIGRhdGUtZGF5cygxKSxkYXRlKQ0KICAgICAgICAgI0NvdW50cnk9c3RyX3JlcGxhY2UoQ291bnRyeSwiQ3plY2ggcmVwdWJsaWN8Q3plY2hfUmVwdWJsaWMiLCJDemVjaCBSZXB1YmxpYyIpLA0KICAgICAgICAgKSAlPiUNCiAgYXJyYW5nZShDb3VudHJ5LGRhdGUpICU+JQ0KICAjZmlsdGVyKEluZmVjdGVkX25ldz4wKSAlPiUgDQogIGdyb3VwX2J5KENvdW50cnkpICU+JQ0KICBjb21wbGV0ZShkYXRlPXNlcS5EYXRlKGFzLkRhdGUoIjIwMTktMTItMzAiKSxTeXMuRGF0ZSgpLTEsYnk9ImRheSIpKSAlPiUgDQoNCiAgbXV0YXRlKEluZmVjdGVkPWN1bXN1bShpZmVsc2UoaXMubmEoSW5mZWN0ZWRfbmV3KSwwLEluZmVjdGVkX25ldykpLA0KICAgICAgICAgRGVhdGhzPWN1bXN1bShpZmVsc2UoaXMubmEoRGVhdGhzX25ldyksMCxEZWF0aHNfbmV3KSkNCiAgICAgICAgICkgJT4lDQogIHVuZ3JvdXAoKSAlPiUNCiAgZmlsdGVyKCFzdHJfZGV0ZWN0KENvdW50cnksImludGVybmF0aW9uYWwiKSkgJT4lDQogICAgbXV0YXRlKEluZmVjdGVkPWlmZWxzZShDb3VudHJ5PT0iSXRhbHkiJmRhdGU9PSIyMDIwLTAzLTE0IiwyMTE1NyxJbmZlY3RlZCksDQogICAgICAgICAgIERlYXRocz1pZmVsc2UoQ291bnRyeT09Ikl0YWx5IiZkYXRlPT0iMjAyMC0wMy0xNCIsMTQ0MSxEZWF0aHMpLA0KICAgICAgICAgICBJbmZlY3RlZD1pZmVsc2UoQ291bnRyeT09Ik5vcndheSImZGF0ZT09IjIwMjAtMDMtMTMiLDgwMCxJbmZlY3RlZCksDQogICAgICAgICAgIEluZmVjdGVkPWlmZWxzZShDb3VudHJ5PT0iU3dpdHplcmxhbmQiJmRhdGU9PSIyMDIwLTAzLTE2IiwyMzUzLEluZmVjdGVkKSwNCiAgICAgICAgICAgRGVhdGhzPWlmZWxzZShDb3VudHJ5PT0iU3dpdHplcmxhbmQiJmRhdGU9PSIyMDIwLTAzLTE2IiwxNSxEZWF0aHMpLA0KICAgICAgICAgICBEZWF0aHM9aWZlbHNlKENvdW50cnk9PSJVUyImZGF0ZT09IjIwMjAtMDMtMTkiLDIwMCxEZWF0aHMpLA0KICAgICAgICAgICBJbmZlY3RlZD1pZmVsc2UoQ291bnRyeT09IlNwYWluIiZkYXRlPT0iMjAyMC0wNC0wMiIsMTE3NzEwLEluZmVjdGVkKSwNCiAgICAgICAgICAgRGVhdGhzPWlmZWxzZShDb3VudHJ5PT0iU3BhaW4iJmRhdGU9PSIyMDIwLTA0LTAyIiwxMDkzNSxEZWF0aHMpLA0KICAgICAgICAgICBJbmZlY3RlZD1pZmVsc2UoQ291bnRyeT09Ikdlcm1hbnkiJmRhdGU9PSIyMDIwLTA0LTAyIiw3OTY5NixJbmZlY3RlZCksDQogICAgICAgICAgIERlYXRocz1pZmVsc2UoQ291bnRyeT09Ikdlcm1hbnkiJmRhdGU9PSIyMDIwLTA0LTAyIiwxMDE3LERlYXRocyksDQogICAgICAgICAgICNJbmZlY3RlZD1pZmVsc2UoQ291bnRyeT09Ikl0YWx5IiZkYXRlPT0iMjAyMC0wMy0zMCIsMTA1NzkyLEluZmVjdGVkKSwNCiAgICAgICAgICAgI0RlYXRocz1pZmVsc2UoQ291bnRyeT09Ikl0YWx5IiZkYXRlPT0iMjAyMC0wMy0zMCIsMTI0MjgsRGVhdGhzKSwNCiAgICAgICAgICAgRGVhdGhzX25ldyA9IGlmZWxzZShpcy5uYShEZWF0aHNfbmV3KXxEZWF0aHNfbmV3PT0wLERlYXRocy1sYWcoRGVhdGhzKSxEZWF0aHNfbmV3KSwNCiAgICAgICAgICAgZXVyb3BlPWdlb0lkICVpbiUgYygNCiAgICAgICAgJ0FMJywgJ0FEJywgJ0FNJywgJ0FUJywgJ0JZJywgJ0JFJywgJ0JBJywgJ0JHJywgJ0NIJywgJ0NZJywgJ0NaJywgJ0RFJywNCiAgICAgICAgJ0RLJywgJ0VFJywgJ0VTJywgJ0ZPJywgJ0ZJJywgJ0ZSJywgJ0dCJywgJ0dFJywgJ0dJJywgJ0dSJywgJ0hVJywgJ0hSJywNCiAgICAgICAgJ0lFJywgJ0lTJywgJ0lUJywgJ0xJJywgJ0xUJywgJ0xVJywgJ0xWJywgJ01DJywgJ01LJywgJ01UJywgJ05PJywgJ05MJywgJ1BMJywNCiAgICAgICAgJ1BUJywgJ1JPJywgJ1JVJywgJ1NFJywgJ1NJJywgJ1NLJywgJ1NNJywgJ1RSJywgJ1VBJywgJ1ZBJw0KICAgICkNCikNCg0KDQoNCg0KDQojaHR0cHM6Ly93d3cubXNjYnMuZ29iLmVzL3Byb2Zlc2lvbmFsZXMvc2FsdWRQdWJsaWNhL2NjYXllcy9hbGVydGFzQWN0dWFsL25Db3YtQ2hpbmEvZG9jdW1lbnRvcy9BY3R1YWxpemFjaW9uXzU1X0NPVklELTE5LnBkZg0KI2NybiAlPiUgZmlsdGVyKENvdW50cnk9PSJVUyIpICU+JSBhcnJhbmdlKGRlc2MoZGF0ZSkpICU+JSBWaWV3KCkNCiNjcm4gJT4lIGZpbHRlcihDb3VudHJ5PT0iRnJhbmNlIikgJT4lIGFycmFuZ2UoZGVzYyhkYXRlKSkgJT4lIFZpZXcoKQ0KI2NybiAlPiUgZmlsdGVyKENvdW50cnk9PSJTcGFpbiIpICU+JSBhcnJhbmdlKGRlc2MoZGF0ZSkpICU+JSBWaWV3KCkNCmNybiAlPiUgZmlsdGVyKENvdW50cnk9PSJHZXJtYW55IikgJT4lIGFycmFuZ2UoZGVzYyhkYXRlKSkgJT4lIFZpZXcoKQ0KDQojY3JuICU+JSBncm91cF9ieShHZW9JZCkgJT4lIHN1bW1hcmlzZShuPWxlbmd0aCh1bmlxdWUoQ291bnRyeSkpKSAlPiUgVmlldygpDQoNCg0KYGBgDQoNCg0KYGBge3IgaW5jbHVkZT1GQUxTRX0NCg0Kc3RhcnRfaTwtMTAwDQpzdGFydF9kPC0xMA0KDQpjcm4xPC1jcm4gJT4lIA0KICAgICAgZmlsdGVyKCFDb3VudHJ5ICVpbiUgYygiT3RoZXJzIiwiQ2hpbmEiLCJJcmFuIikpICU+JQ0KICBmaWx0ZXIoSW5mZWN0ZWQ+c3RhcnRfaSkgJT4lDQogIGdyb3VwX2J5KENvdW50cnkpICU+JQ0KICBtdXRhdGUob3JkPTE6bigpLA0KICAgICAgICAgdG90YWw9bWF4KEluZmVjdGVkKSwNCiAgICAgICAgIHRvdGFsRD1tYXgoRGVhdGhzKSwNCiAgICAgICAgIG49bigpLA0KICAgICAgICAgZGVhdGhfcmF0ZT1EZWF0aHMpICU+JQ0KICAgIHVuZ3JvdXAoKQ0KDQpjcm4yPC1jcm4gJT4lIA0KICBmaWx0ZXIoRGVhdGhzPnN0YXJ0X2QpICU+JQ0KICBmaWx0ZXIoIUNvdW50cnkgJWluJSBjKCJPdGhlcnMiLCJDaGluYSIsIklyYW4iKSkgJT4lDQogIGdyb3VwX2J5KENvdW50cnkpICU+JQ0KICBtdXRhdGUob3JkPTE6bigpLA0KICAgICAgICAgdG90YWw9bWF4KERlYXRocyksDQogICAgICAgICBuPW4oKSkgJT4lDQogICAgdW5ncm91cCgpDQoNCmNybjM8LSBjcm4gJT4lICANCiAgZmlsdGVyKCFDb3VudHJ5ICVpbiUgYygiT3RoZXJzIikpICU+JQ0KICBncm91cF9ieShDb3VudHJ5KSAlPiUNCiAgbXV0YXRlKGRlYXRoX3JhdGU9KERlYXRocyoxMDAvSW5mZWN0ZWQpICU+JSByb3VuZChkaWdpdHMgPSAxKSkgJT4lDQogIGZpbHRlcihyb3dfbnVtYmVyKCk9PW4oKSZEZWF0aHM+MSkgJT4lIHVuZ3JvdXAoKSAlPiUgDQphcnJhbmdlKEluZmVjdGVkICU+JSBkZXNjKCkpDQoNCiAgDQpjcm5fdGhlbWU8LQ0KICB0aGVtZV9taW5pbWFsKCkgKw0KICB0aGVtZSgNCiAgbGVnZW5kLnRpdGxlID0gZWxlbWVudF9ibGFuaygpLA0KICBsZWdlbmQudGV4dCA9IGVsZW1lbnRfdGV4dChzaXplID0gMTQpLA0KICBsZWdlbmQua2V5LnNpemUgPSB1bml0KDAuOCwgImNtIiksDQogIGxlZ2VuZC5rZXkud2lkdGggPSB1bml0KDIsImNtIiksDQogICNsZWdlbmQucG9zaXRpb249InRvcCIsDQogIHBsb3QubWFyZ2luPXVuaXQoYygwLjUsMC41LDAuNSwwLjUpLCJjbSIpLA0KICBheGlzLnRpdGxlLnggPSBlbGVtZW50X3RleHQoc2l6ZT0xNixjb2xvdXIgPSAiZ3JleTMwIixtYXJnaW4gPSBtYXJnaW4odCA9IDE1KSksDQogIGF4aXMudGl0bGUueSA9IGVsZW1lbnRfdGV4dChzaXplPTE2LGNvbG91ciA9ICJncmV5MzAiLG1hcmdpbiA9IG1hcmdpbihyID0gMTUpKSwNCiAgYXhpcy50ZXh0LnggPSBlbGVtZW50X3RleHQoc2l6ZT0xMixjb2xvdXIgPSAiZ3JleTQwIiksDQogIGF4aXMudGV4dC55ID0gZWxlbWVudF90ZXh0KHNpemU9MTIsY29sb3VyID0gImdyZXk0MCIpLA0KICBwbG90LnRpdGxlID0gZWxlbWVudF90ZXh0KHNpemU9MTgsY29sb3VyID0gImdyZXk1IiksDQogIHBsb3Quc3VidGl0bGUgPSBlbGVtZW50X3RleHQoc2l6ZT0xMyxjb2xvdXIgPSAiZ3JleTMwIikNCiAgKSAgDQoNCg0KIyBjcm4gJT4lIA0KIyAgIGdyb3VwX2J5KENvdW50cnkpICU+JSANCiMgICBmaWx0ZXIoSW5mZWN0ZWQ+NSkgJT4lIA0KIyAgIG11dGF0ZShkYXlzPWRpZmZ0aW1lKG1heChkYXRlKSxtaW4oZGF0ZSksImRheXMiKSAlPiUgYXMubnVtZXJpYygpICwNCiMgICAgICAgICAgcGVyX2RheT0obWF4KEluZmVjdGVkKS9kYXlzKSAlPiUgcm91bmQoZGlnaXRzID0gMSkpICU+JSANCiMgICBmaWx0ZXIocm93X251bWJlcigpPT1uKCkpICU+JSANCiMgICB1bmdyb3VwKCkgJT4lIA0KIyAgIGZpbHRlcighQ291bnRyeSAlaW4lIGMoIk1haW5sYW5kIENoaW5hIiwiT3RoZXJzIikmSW5mZWN0ZWQ+NTApICU+JQ0KIyAgIGFycmFuZ2UoZGVzYyhJbmZlY3RlZCkpICU+JSAgIHByaW50KCkgI1ZpZXcoKQ0KDQpgYGANCg0K0JTQttC10YDQtdC70L4g0LTQsNC90LjRhSAtIFsJDQpFdXJvcGVhbiBDZW50cmUgZm9yIERpc2Vhc2UgUHJldmVudGlvbiBhbmQgQ29udHJvbF0oaHR0cHM6Ly93d3cuZWNkYy5ldXJvcGEuZXUvZW4vcHVibGljYXRpb25zLWRhdGEvZG93bmxvYWQtdG9kYXlzLWRhdGEtZ2VvZ3JhcGhpYy1kaXN0cmlidXRpb24tY292aWQtMTktY2FzZXMtd29ybGR3aWRlKS4NCg0KKirQlNCw0L3RliDQvdCwIGByIGRheShTeXMuRGF0ZSgpLTEpYCDQsdC10YDQtdC30L3Rjy4qKg0KDQo8L2JyPg0KIA0KDQoNCiMjINCg0ZbQstC10L3RjCDRgdC80LXRgNGC0L3QvtGB0YLRliDQsiDRgNGW0LfQvdC40YUg0LrRgNCw0ZfQvdCw0YUgDQoNCjwvYnI+DQoNCmBgYHtyIGVjaG89RkFMU0UsIGZpZy5oZWlnaHQ9NiwgZmlnLndpZHRoPTEwLCBkcGkgPSAyMDB9DQpkZXRoX21pbjwtMjUNCmluZl9taW48LTE1MDANCnk8LWNybjMgJT4lIGZpbHRlcihJbmZlY3RlZD5pbmZfbWluKSAlPiUgDQogIG11dGF0ZShoanVzdD1pZmVsc2UoQ291bnRyeSAlaW4lIGMoIkdlcm1hbnkiLCJDaGluYSIpLC0wLjcsMC41KSwNCiAgICAgICAgIHZqdXN0PWlmZWxzZShDb3VudHJ5ICVpbiUgYygiR2VybWFueSIsIkNoaW5hIiksMC4zLC0yKSwNCiAgICAgICAgIGhqdXN0PWlmZWxzZShDb3VudHJ5ICVpbiUgYygiVVMiLCJTd2l0emVybGFuZCIpLDAuNSxoanVzdCksDQogICAgICAgICB2anVzdD1pZmVsc2UoQ291bnRyeSAlaW4lIGMoIlVTIiwiU3dpdHplcmxhbmQiKSwxLjUsdmp1c3QpLA0KICAgICAgICAgKQ0KDQoNCnNjYWxlPC0xNTAwMA0KcGxvdDU8LWdncGxvdCh5KSAgKyANCiAgICAjZ2VvbV9iYXIoYWVzKHg9Q291bnRyeSwgeT1JbmZlY3RlZCksc3RhdD0iaWRlbnRpdHkiLCBmaWxsPSJ0YW4xIiwgY29sb3VyPSJzaWVubmEzIikrDQogIGdlb21fY29sKGFlcyh4PXJlb3JkZXIoQ291bnRyeSwtSW5mZWN0ZWQpLCB5PUluZmVjdGVkKSxmaWxsPSJpbmRpYW5yZWQyIikrDQogIGdlb21fbGluZShhZXMoeD1yZW9yZGVyKENvdW50cnksLUluZmVjdGVkKSwgeT1kZWF0aF9yYXRlKnNjYWxlKSwgY29sb3I9InN0ZWVsYmx1ZTQiLCBncm91cCA9IDEsIHNpemUgPSAxLjUpICsgDQogIGdlb21fcG9pbnQoYWVzKHg9cmVvcmRlcihDb3VudHJ5LC1JbmZlY3RlZCksIHk9ZGVhdGhfcmF0ZSpzY2FsZSksIGNvbG9yPSJzdGVlbGJsdWU0Iiwgc2l6ZSA9IDMpICsNCiAgZ2VvbV90ZXh0KGFlcyhsYWJlbD1kZWF0aF9yYXRlLCB4PUNvdW50cnksIHk9ZGVhdGhfcmF0ZSpzY2FsZSksIGNvbG91cj0ic3RlZWxibHVlNCIsdmp1c3QgPSAgeSR2anVzdCwgaGp1c3Q9eSRoanVzdCxzaXplID0gMy4xKSsNCiAgICAjZ2VvbV90ZXh0KGFlcyhsYWJlbD1SZXNwb25zZSwgeD1ZZWFyLCB5PTAuOTUqUmVzcG9uc2UpLCBjb2xvdXI9ImJsYWNrIikrDQogICAgc2NhbGVfeV9jb250aW51b3VzKA0KICAgICAgI2xpbWl0cyA9IGMoMCwgMjAwMDAwKSwNCiAgICAgIGJyZWFrcyA9IHNlcSgwLCA4MDAwMDAsIDIwMDAwKSwNCiAgICAgIHNlYy5heGlzID0gc2VjX2F4aXMofi4vc2NhbGUsIGJyZWFrcyA9IHNlcSgwLCAyMCwgMSksIG5hbWUgPSAi0KHQvNC10YDRgtC90ZbRgdGC0YwsICUiKSwNCiAgICAgIGV4cGFuZCA9IGMoMCwwKSwNCiAgICAgIGxhYmVscyA9IHNjYWxlczo6Y29tbWEjLHRyYW5zPSdsb2cnDQogICAgICApICsNCiAgICBsYWJzKHk9ItCa0ZbQu9GM0LrRltGB0YLRjCDQt9Cw0YDQsNC20LXQvdC40YUiLCB4ID0gIiIsDQogICAgICAgdGl0bGUgPSAi0KHQvNC10YDRgtC90ZbRgdGC0Ywg0LLRltC0IENPVklELTE5INCyINGA0ZbQt9C90LjRhSDQutGA0LDRl9C90LDRhSIsIA0KICAgICAgIHN1YnRpdGxlID0gcGFzdGUoItCa0YDQsNGX0L3QuCDQtyDQutGW0LvRjNC60ZbRgdGC0Y4g0LfQsNGA0LDQttC10L3QuNGFINCx0ZbQu9GM0YjQtSIsaW5mX21pbikNCiAgICAgICApICsgY3JuX3RoZW1lICsNCiAgdGhlbWUocGxvdC5tYXJnaW49dW5pdChjKDAuNSwwLjUsMC4xLDAuMSksImNtIiksDQogICAgICAgIGF4aXMudGV4dC54ID0gZWxlbWVudF90ZXh0KGFuZ2xlID0gOTAsIGhqdXN0ID0gMSwgIHZqdXN0ID0gMC4zLCBzaXplID0gMTMsY29sb3VyID0gImdyZXk1IiksDQogICAgICAgIGF4aXMudGV4dC55ID0gZWxlbWVudF90ZXh0KHNpemUgPSAxMCksDQogICAgICAgIGF4aXMudGl0bGUueCA9IGVsZW1lbnRfdGV4dChzaXplPTE0LG1hcmdpbiA9IG1hcmdpbih0ID0gMTUpKSwNCiAgICAgICAgYXhpcy50aXRsZS55ID0gZWxlbWVudF90ZXh0KHNpemU9MTQsY29sb3VyID0gImdyZXkzNSIsbWFyZ2luID0gbWFyZ2luKHIgPSAxMCxsPTEwLGI9MTApKSkNCg0KICANCg0KcGxvdDUNCg0KYGBgDQoNCg0KDQoNCg0KYGBge3IgaW5jbHVkZT1GQUxTRSwgZmlnLmhlaWdodD02LCBmaWcud2lkdGg9MTB9DQp0b3RhbF9kZWF0aF9taW4xPC01MDANCg0KeDwtY3JuMiAlPiUgZmlsdGVyKHRvdGFsPnRvdGFsX2RlYXRoX21pbjEmbj42KQ0KICAgICAgICAgICAgICAgICAgIA0KcGxvdDQ8LWdncGxvdCh4LCBhZXMoeD1vcmQseT1EZWF0aHMpKSArDQogIGdlb21fbGluZShhZXMoY29sb3IgPSBDb3VudHJ5LCBsaW5ldHlwZSA9IENvdW50cnkNCiAgICAgICAgICAgICAgICApLHNpemU9MS41KSArDQogIHNjYWxlX3hfY29udGludW91cyhicmVha3MgPSBzZXEoNSwgNjAsIDUpLGxpbWl0cyA9IGMoMSwgNDApKSArDQogIHNjYWxlX3lfY29udGludW91cyhicmVha3MgPSBzZXEoMCwgIDMwMDAwLCAyMDAwKSkgKw0KICAjc2NhbGVfeV9jb250aW51b3VzKGJyZWFrcyA9IHNlcSgwLCAyMDAwMCwgMTAwMCkpICsNCiAgI3NjYWxlX2xpbmV0eXBlX2Rpc2NyZXRlKCkgKw0KICAjc2NhbGVfbGluZXR5cGVfaWRlbnRpdHkoKSArDQogIHNjYWxlX2xpbmV0eXBlX21hbnVhbCh2YWx1ZXM9c2FtcGxlKGMoMSwyKSwgbnJvdyh4KSxyZXBsYWNlID0gVCkpKw0KICBsYWJzKHk9ItCX0LDQs9Cw0LvRjNC90LAg0LrRltC70YzQutGW0YHRgtGMINC/0L7QvNC10YDQu9C40YUiLCB4ID0gcGFzdGUwKCLQmtGW0LvRjNC60ZbRgdGC0Ywg0LTQvdGW0LIg0L/QvtGH0LjQvdCw0Y7Rh9C4INCy0ZbQtCAiLHN0YXJ0X2QsIiDRgdC80LXRgNGC0LXQuSIpLA0KICAgICAgIHRpdGxlID0gItCh0LzQtdGA0YLQvdGW0YHRgtGMINCy0ZbQtCBDT1ZJRC0xOSDQsiDRgNGW0LfQvdC40YUg0LrRgNCw0ZfQvdCw0YUiLCANCiAgICAgICBzdWJ0aXRsZSA9IHBhc3RlKCLQmtGA0LDRl9C90Lgg0Lcg0LrRltC70YzQutGW0YHRgtGOINC/0L7QvNC10YDQu9C40YUg0LHRltC70YzRiNC1Iix0b3RhbF9kZWF0aF9taW4xLCLQstC40L/QsNC00LrRltCyIikNCiAgICAgICAjLCBjYXB0aW9uID0gIk15IGNhcHRpb24iDQogICAgICAgKSsNCiAgY3JuX3RoZW1lICsgICBzY2FsZV9jb2xvcl9icmV3ZXIocGFsZXR0ZSA9ICJQYWlyZWQiLGRpcmVjdGlvbiA9IDEpDQoNCnBsb3Q0DQoNCmBgYA0KDQoNCg0KPC9icj4NCg0KIyMg0JTQuNC90LDQvNGW0LrQsCDQt9Cw0LPQsNC70YzQvdC+0Zcg0LrRltC70YzQutC+0YHRgtGWINGB0LzQtdGA0YLQtdC5ICANCiMjIyMg0JrRgNCw0ZfQvdC4INC3INC60ZbQu9GM0LrRltGB0YLRjiDRgdC80LXRgNGC0LXQuSDQsdGW0LvRjNGI0LUgYHIgdG90YWxfZGVhdGhfbWluMWANCg0KPC9icj4NCg0KYGBge3IgZWNobz1GQUxTRSwgZmlnLmhlaWdodD02LCBmaWcud2lkdGg9MTB9DQpnZ3Bsb3RseShwbG90NCtnZ3RpdGxlKCIiKSkNCmBgYA0KDQoNCg0KDQpgYGB7ciBpbmNsdWRlPUZBTFNFLCBmaWcuaGVpZ2h0PTYsIGZpZy53aWR0aD0xMH0NCnRvdGFsX2RlYXRoX21heDI8LTEyMDANCnRvdGFsX2RlYXRoX21pbjI8LTIwMA0KDQp4MTwtY3JuMiAlPiUgZmlsdGVyKChiZXR3ZWVuKHRvdGFsLHRvdGFsX2RlYXRoX21pbjIsdG90YWxfZGVhdGhfbWF4Mikmbj41KXwoQ291bnRyeT09Ikl0YWx5IiZEZWF0aHM8dG90YWxfZGVhdGhfbWF4MikpDQoNCg0KICAgICAgICAgICAgICAgICAgIA0KcGxvdDRzbWFsbDwtZ2dwbG90KHgxLCBhZXMoeD1vcmQseT1EZWF0aHMpKSArDQogIGdlb21fbGluZShhZXMoY29sb3IgPSBDb3VudHJ5LCBsaW5ldHlwZSA9IENvdW50cnkNCiAgICAgICAgICAgICAgICApLHNpemU9MS41KSArDQogIHNjYWxlX3hfY29udGludW91cyhicmVha3MgPSBzZXEoNSwgNjAsIDUpLGxpbWl0cyA9IGMoMSwgMzUpKSArDQogIHNjYWxlX3lfY29udGludW91cyhicmVha3MgPSBzZXEoMCwgMjAwMCwgMTAwKSkgKw0KICAjc2NhbGVfeV9jb250aW51b3VzKGJyZWFrcyA9IHNlcSgwLCAyMDAwMCwgMTAwMCkpICsNCiAgI3NjYWxlX2xpbmV0eXBlX2Rpc2NyZXRlKCkgKw0KICAjc2NhbGVfbGluZXR5cGVfaWRlbnRpdHkoKSArDQogIHNjYWxlX2xpbmV0eXBlX21hbnVhbCh2YWx1ZXM9c2FtcGxlKGMoMSwyKSwgbnJvdyh4KSxyZXBsYWNlID0gVCkpKw0KICBsYWJzKHk9ItCX0LDQs9Cw0LvRjNC90LAg0LrRltC70YzQutGW0YHRgtGMINC/0L7QvNC10YDQu9C40YUiLCB4ID0gcGFzdGUwKCLQmtGW0LvRjNC60ZbRgdGC0Ywg0LTQvdGW0LIg0L/QvtGH0LjQvdCw0Y7Rh9C4INCy0ZbQtCAiLHN0YXJ0X2QsIiDRgdC80LXRgNGC0LXQuSIpLA0KICAgICAgIHRpdGxlID0gItCh0LzQtdGA0YLQvdGW0YHRgtGMINCy0ZbQtCBDT1ZJRC0xOSDQsiDRgNGW0LfQvdC40YUg0LrRgNCw0ZfQvdCw0YUiLCANCiAgICAgICBzdWJ0aXRsZSA9IHBhc3RlKCLQmtGA0LDRl9C90Lgg0Lcg0LrRltC70YzQutGW0YHRgtGOINC/0L7QvNC10YDQu9C40YUg0LLRltC0Iix0b3RhbF9kZWF0aF9taW4yLCLQtNC+IiAsdG90YWxfZGVhdGhfbWF4Miwi0LLQuNC/0LDQtNC60ZbQsiArINCG0YLQsNC70ZbRjyDQtNC70Y8g0L/QvtGA0ZbQstC90Y/QvdC90Y8iKQ0KICAgICAgICMsIGNhcHRpb24gPSAiTXkgY2FwdGlvbiINCiAgICAgICApKw0KICBjcm5fdGhlbWUgKyAgIHNjYWxlX2NvbG9yX2JyZXdlcihwYWxldHRlID0gIlBhaXJlZCIsZGlyZWN0aW9uID0gMSkNCg0KcGxvdDRzbWFsbA0KDQpgYGANCg0KDQo8L2JyPg0KDQojIyMjINCa0YDQsNGX0L3QuCDQtyDQutGW0LvRjNC60ZbRgdGC0Y4g0YHQvNC10YDRgtC10Lkg0LLRltC0IGByIHRvdGFsX2RlYXRoX21pbjJgINC00L4gYHIgdG90YWxfZGVhdGhfbWF4MmAgKyDQhtGC0LDQu9GW0Y8g0LTQvtC00LDQvdCwINC00LvRjyDQv9C+0YDRltCy0L3Rj9C90L3Rjw0KPC9icj4NCg0KDQpgYGB7ciBlY2hvPUZBTFNFLCBmaWcuaGVpZ2h0PTYsIGZpZy53aWR0aD0xMH0NCmdncGxvdGx5KHBsb3Q0c21hbGwrZ2d0aXRsZSgiIikpDQpgYGANCg0KDQoNCg0KYGBge3IgaW5jbHVkZT1GQUxTRSwgZmlnLmhlaWdodD02LCBmaWcud2lkdGg9MTB9DQp0b3RhbF9kZWF0aF9tYXgzPC0yMDANCnRvdGFsX2RlYXRoX21pbjM8LTgwDQoNCngyPC1jcm4yICU+JSBmaWx0ZXIoKGJldHdlZW4odG90YWwsdG90YWxfZGVhdGhfbWluMyx0b3RhbF9kZWF0aF9tYXgzKSZuPjUpfChDb3VudHJ5PT0iSXRhbHkiJkRlYXRoczx0b3RhbF9kZWF0aF9tYXgzKSkNCg0KDQogICAgICAgICAgICAgICAgICAgDQpwbG90NHNtYWxsMjwtZ2dwbG90KHgyLCBhZXMoeD1vcmQseT1EZWF0aHMpKSArDQogIGdlb21fbGluZShhZXMoY29sb3IgPSBDb3VudHJ5LCBsaW5ldHlwZSA9IENvdW50cnkNCiAgICAgICAgICAgICAgICApLHNpemU9MS41KSArDQogIHNjYWxlX3hfY29udGludW91cyhicmVha3MgPSBzZXEoNSwgNjAsIDEwKSxsaW1pdHMgPSBjKDEsIDQwKSkgKw0KICBzY2FsZV95X2NvbnRpbnVvdXMoYnJlYWtzID0gc2VxKDAsIDEwMDAsIDIwKSkgKw0KICAjc2NhbGVfeV9jb250aW51b3VzKGJyZWFrcyA9IHNlcSgwLCAyMDAwMCwgMTAwMCkpICsNCiAgI3NjYWxlX2xpbmV0eXBlX2Rpc2NyZXRlKCkgKw0KICAjc2NhbGVfbGluZXR5cGVfaWRlbnRpdHkoKSArDQogIHNjYWxlX2xpbmV0eXBlX21hbnVhbCh2YWx1ZXM9c2FtcGxlKGMoMSwyKSwgbnJvdyh4KSxyZXBsYWNlID0gVCkpKw0KICBsYWJzKHk9ItCa0ZbQu9GM0LrRltGB0YLRjCDQv9C+0LzQtdGA0LvQuNGFIiwgeCA9IHBhc3RlMCgi0JrRltC70YzQutGW0YHRgtGMINC00L3RltCyINC/0L7Rh9C40L3QsNGO0YfQuCDQstGW0LQgIixzdGFydF9kLCIg0YHQvNC10YDRgtC10LkiKSwNCiAgICAgICB0aXRsZSA9ICLQodC80LXRgNGC0L3RltGB0YLRjCDQstGW0LQgQ09WSUQtMTkg0LIg0YDRltC30L3QuNGFINC60YDQsNGX0L3QsNGFIiwgDQogICAgICAgc3VidGl0bGUgPSBwYXN0ZSgi0JrRgNCw0ZfQvdC4INC3INC60ZbQu9GM0LrRltGB0YLRjiDQv9C+0LzQtdGA0LvQuNGFINCy0ZbQtCIsdG90YWxfZGVhdGhfbWluMywi0LTQviIgLHRvdGFsX2RlYXRoX21heDMsItCy0LjQv9Cw0LTQutGW0LIgKyDQhtGC0LDQu9GW0Y8g0LTQu9GPINC/0L7RgNGW0LLQvdGP0L3QvdGPIikNCiAgICAgICAjLCBjYXB0aW9uID0gIk15IGNhcHRpb24iDQogICAgICAgKSsNCiAgY3JuX3RoZW1lICsgICBzY2FsZV9jb2xvcl9icmV3ZXIocGFsZXR0ZSA9ICJQYWlyZWQiLGRpcmVjdGlvbiA9IDEpDQoNCnBsb3Q0c21hbGwyDQoNCmBgYA0KDQoNCjwvYnI+DQoNCiMjIyMg0JrRgNCw0ZfQvdC4INC3INC60ZbQu9GM0LrRltGB0YLRjiDRgdC80LXRgNGC0LXQuSDQstGW0LQgYHIgdG90YWxfZGVhdGhfbWluM2Ag0LTQviBgciB0b3RhbF9kZWF0aF9tYXgzYCArINCG0YLQsNC70ZbRjyDQtNC+0LTQsNC90LAg0LTQu9GPINC/0L7RgNGW0LLQvdGP0L3QvdGPDQo8L2JyPg0KDQoNCmBgYHtyIGVjaG89RkFMU0UsIGZpZy5oZWlnaHQ9NiwgZmlnLndpZHRoPTEwfQ0KZ2dwbG90bHkocGxvdDRzbWFsbDIrZ2d0aXRsZSgiIikpDQpgYGANCg0KDQpgYGB7ciBpbmNsdWRlPUZBTFNFLCBmaWcuaGVpZ2h0PTYsIGZpZy53aWR0aD0xMH0NCnRvdGFsX2RlYXRoX21heDQ8LTgxDQp0b3RhbF9kZWF0aF9taW40PC0xMA0KDQp4MzwtY3JuMiAlPiUgZmlsdGVyKChiZXR3ZWVuKHRvdGFsLHRvdGFsX2RlYXRoX21pbjQsdG90YWxfZGVhdGhfbWF4NCkmbj40JmV1cm9wZSl8KENvdW50cnk9PSJJdGFseSImRGVhdGhzPHRvdGFsX2RlYXRoX21heDQpKQ0KDQoNCiAgICAgICAgICAgICAgICAgICANCnBsb3Q0c21hbGwzPC1nZ3Bsb3QoeDMsIGFlcyh4PW9yZCx5PURlYXRocykpICsNCiAgZ2VvbV9saW5lKGFlcyhjb2xvciA9IENvdW50cnksIGxpbmV0eXBlID0gQ291bnRyeQ0KICAgICAgICAgICAgICAgICksc2l6ZT0xLjUpICsNCiAgc2NhbGVfeF9jb250aW51b3VzKGJyZWFrcyA9IHNlcSg1LCA2MCwgMTApLGxpbWl0cyA9IGMoMSwgMzApKSArDQogIHNjYWxlX3lfY29udGludW91cyhicmVha3MgPSBzZXEoMCwgMTAwMCwgMTApKSArDQogICNzY2FsZV95X2NvbnRpbnVvdXMoYnJlYWtzID0gc2VxKDAsIDIwMDAwLCAxMDAwKSkgKw0KICAjc2NhbGVfbGluZXR5cGVfZGlzY3JldGUoKSArDQogICNzY2FsZV9saW5ldHlwZV9pZGVudGl0eSgpICsNCiAgc2NhbGVfbGluZXR5cGVfbWFudWFsKHZhbHVlcz1zYW1wbGUoYygxLDIpLCBucm93KHgpLHJlcGxhY2UgPSBUKSkrDQogIGxhYnMoeT0i0JrRltC70YzQutGW0YHRgtGMINC/0L7QvNC10YDQu9C40YUiLCB4ID0gcGFzdGUwKCLQmtGW0LvRjNC60ZbRgdGC0Ywg0LTQvdGW0LIg0L/QvtGH0LjQvdCw0Y7Rh9C4INCy0ZbQtCAiLHN0YXJ0X2QsIiDRgdC80LXRgNGC0LXQuSIpLA0KICAgICAgIHRpdGxlID0gItCh0LzQtdGA0YLQvdGW0YHRgtGMINCy0ZbQtCBDT1ZJRC0xOSDQsiDRgNGW0LfQvdC40YUg0LrRgNCw0ZfQvdCw0YUiLCANCiAgICAgICBzdWJ0aXRsZSA9IHBhc3RlKCLQmtGA0LDRl9C90Lgg0Lcg0LrRltC70YzQutGW0YHRgtGOINC/0L7QvNC10YDQu9C40YUg0LLRltC0Iix0b3RhbF9kZWF0aF9taW40LCLQtNC+IiAsdG90YWxfZGVhdGhfbWF4NCwi0LLQuNC/0LDQtNC60ZbQsiArINCG0YLQsNC70ZbRjyDQtNC70Y8g0L/QvtGA0ZbQstC90Y/QvdC90Y8iKQ0KICAgICAgICMsIGNhcHRpb24gPSAiTXkgY2FwdGlvbiINCiAgICAgICApKw0KICBjcm5fdGhlbWUgKyAgIHNjYWxlX2NvbG9yX2JyZXdlcihwYWxldHRlID0gIlBhaXJlZCIsZGlyZWN0aW9uID0gMSkNCg0KcGxvdDRzbWFsbDMNCg0KYGBgDQoNCg0KPC9icj4NCg0KIyMjIyDQhNCy0YDQvtC/0LXQudGB0YzQutGWINCa0YDQsNGX0L3QuCDQtyDQutGW0LvRjNC60ZbRgdGC0Y4g0YHQvNC10YDRgtC10Lkg0LLRltC0IGByIHRvdGFsX2RlYXRoX21pbjRgINC00L4gYHIgdG90YWxfZGVhdGhfbWF4NGAgKyDQhtGC0LDQu9GW0Y8g0LTQvtC00LDQvdCwINC00LvRjyDQv9C+0YDRltCy0L3Rj9C90L3Rjw0KPC9icj4NCg0KDQpgYGB7ciBlY2hvPUZBTFNFLCBmaWcuaGVpZ2h0PTYsIGZpZy53aWR0aD0xMH0NCmdncGxvdGx5KHBsb3Q0c21hbGwzK2dndGl0bGUoIiIpKQ0KYGBgDQoNCmBgYHtyIGVjaG89RkFMU0UsIGZpZy5oZWlnaHQ9NiwgZmlnLndpZHRoPTEwfQ0KDQogICAgICAgICAgICAgICAgICAgDQpwbG90NG5ldzwtIGdncGxvdCh4ICU+JSBmaWx0ZXIodG90YWw+MTAwMCZuPjE4KSwgYWVzKHg9b3JkLHk9RGVhdGhzX25ldyxjb2xvciA9IENvdW50cnkpKSArDQogIGdlb21fcG9pbnQoc2l6ZT0xLjUpICsNCiAgZ2VvbV9zbW9vdGgobWV0aG9kID0gImxvZXNzIiwgc2U9RixzaXplPTEuOSwgc3BhbiA9IDAuNCkgKw0KICBzY2FsZV94X2NvbnRpbnVvdXMoYnJlYWtzID0gc2VxKDUsIDYwLCA1KSxsaW1pdHMgPSBjKDEsIDQwKSkgKw0KICBzY2FsZV95X2NvbnRpbnVvdXMoYnJlYWtzID0gc2VxKDAsIDEwMDAsIDEwMCkpICsNCiAgI3NjYWxlX3lfY29udGludW91cyhicmVha3MgPSBzZXEoMCwgMjAwMDAsIDEwMDApKSArDQogICNzY2FsZV9saW5ldHlwZV9kaXNjcmV0ZSgpICsNCiAgI3NjYWxlX2xpbmV0eXBlX2lkZW50aXR5KCkgKw0KICAjc2NhbGVfbGluZXR5cGVfbWFudWFsKHZhbHVlcz1zYW1wbGUoYygxLDIpLCBucm93KHgpLHJlcGxhY2UgPSBUKSkrDQogIGxhYnMoeT0i0JrRltC70YzQutGW0YHRgtGMINC90L7QstC40YUg0YHQvNC10YDRgtC10Lkg0LfQsCDQtNC10L3RjCIsIHggPSBwYXN0ZTAoItCa0ZbQu9GM0LrRltGB0YLRjCDQtNC90ZbQsiDQv9C+0YfQuNC90LDRjtGH0Lgg0LLRltC0ICIsc3RhcnRfZCwiINGB0LzQtdGA0YLQtdC5IiksDQogICAgICAgdGl0bGUgPSAi0KHQvNC10YDRgtC90ZbRgdGC0Ywg0LLRltC0IENPVklELTE5INCyINGA0ZbQt9C90LjRhSDQutGA0LDRl9C90LDRhSIsIA0KICAgICAgIHN1YnRpdGxlID0gcGFzdGUoItCa0YDQsNGX0L3QuCDQtyDQt9Cw0LPQsNC70YzQvdC+0Y4g0LrRltC70YzQutGW0YHRgtGOINC/0L7QvNC10YDQu9C40YUg0LHRltC70YzRiNC1Iix0b3RhbF9kZWF0aF9taW4xLCLQstC40L/QsNC00LrRltCyIikNCiAgICAgICApICsgICBjcm5fdGhlbWUgKyAgIHNjYWxlX2NvbG9yX2JyZXdlcihwYWxldHRlID0gIkRhcmsyIixkaXJlY3Rpb24gPSAxKQ0KDQpwbG90NG5ldw0KDQpgYGANCg0KDQoNCjwvYnI+DQoNCiMjINCU0LjQvdCw0LzRltC60LAg0LrRltC70YzQutC+0YHRgtGWINC90L7QstC40YUg0YHQvNC10YDRgtC10Lkg0LfQsCDQtNC10L3RjA0KIyMjIyDQmtGA0LDRl9C90Lgg0ZbQtyDQt9Cw0LPQsNC70YzQvdC+0Y4g0LrRltC70YzQutGW0YHRgtGOINGB0LzQtdGA0YLQtdC5INCx0ZbQu9GM0YjQtSBgciB0b3RhbF9kZWF0aF9tYXgyYA0KDQo8L2JyPg0KDQpgYGB7ciBlY2hvPUZBTFNFLCBmaWcuaGVpZ2h0PTYsIGZpZy53aWR0aD0xMH0NCmdncGxvdGx5KHBsb3Q0bmV3K2dndGl0bGUoIiIpKQ0KYGBgDQoNCg0KPC9icj4NCjwvYnI+DQoNCiMjINCU0LjQvdCw0LzRltC60LAg0YHQvNC10YDRgtC90L7RgdGC0ZYg0LIg0YDRltC30L3QuNGFINC60YDQsNGX0L3QsNGFIC0g0JvQvtCz0LDRgNC40YTQvNGW0YfQvdCwINGI0LrQsNC70LANCjwvYnI+DQoNCg0KYGBge3IgaW5jbHVkZT1GQUxTRSwgZmlnLmhlaWdodD02LCBmaWcud2lkdGg9MTB9DQoNCng8LWNybjIgJT4lIGZpbHRlcih0b3RhbD50b3RhbF9kZWF0aF9taW4yKjImbj41KQ0KICAgICAgICAgICAgICAgICAgIA0KcGxvdDRsPC1nZ3Bsb3QoeCwgYWVzKHg9b3JkLHk9RGVhdGhzKSkgKw0KICBnZW9tX2xpbmUoYWVzKGNvbG9yID0gQ291bnRyeSwgbGluZXR5cGUgPSBDb3VudHJ5DQogICAgICAgICAgICAgICAgKSxzaXplPTEuNSkgKw0KICBzY2FsZV94X2NvbnRpbnVvdXMoYnJlYWtzID0gc2VxKDAsIDYwLCA1KSxsaW1pdHMgPSBjKDEsIDM1KSkgKw0KICBzY2FsZV95X2NvbnRpbnVvdXMoYnJlYWtzID0gdHJhbnNfYnJlYWtzKCdsb2cxMCcsIGZ1bmN0aW9uKHgpIHJvdW5kKDEwXngsZGlnaXRzID0gMCkpLA0KICAgICAgICAgICAgICAgICAgICAgI2JyZWFrcyA9IGMoMCw1MDAsMTAwMCw1MDAwLDEwMDApI3NlcSgwLCAxMDAwMCwgMTAwMCksDQogICAgICAgICAgICAgICAgICAgICB0cmFucz0ibG9nMTAiKSArDQogICNzY2FsZV95X2NvbnRpbnVvdXMoYnJlYWtzID0gc2VxKDAsIDIwMDAwLCAxMDAwKSkgKw0KICAjc2NhbGVfbGluZXR5cGVfZGlzY3JldGUoKSArDQogICNzY2FsZV9saW5ldHlwZV9pZGVudGl0eSgpICsNCiAgc2NhbGVfbGluZXR5cGVfbWFudWFsKHZhbHVlcz1zYW1wbGUoYygxKSwgbnJvdyh4KSxyZXBsYWNlID0gVCkpKw0KICBsYWJzKHk9ItCa0ZbQu9GM0LrRltGB0YLRjCDQv9C+0LzQtdGA0LvQuNGFIC0gbG9nIiwgeCA9IHBhc3RlMCgi0JrRltC70YzQutGW0YHRgtGMINC00L3RltCyINC/0L7Rh9C40L3QsNGO0YfQuCDQstGW0LQgIixzdGFydF9kLCIg0YHQvNC10YDRgtC10LkiKSwNCiAgICAgICB0aXRsZSA9ICLQodC80LXRgNGC0L3RltGB0YLRjCDQstGW0LQgQ09WSUQtMTkg0LIg0YDRltC30L3QuNGFINC60YDQsNGX0L3QsNGFICjQm9C+0LPQsNGA0LjRhNC80ZbRh9C90LAg0YjQutCw0LvQsCkiLCANCiAgICAgICBzdWJ0aXRsZSA9IHBhc3RlKCLQmtGA0LDRl9C90Lgg0Lcg0LrRltC70YzQutGW0YHRgtGOINC/0L7QvNC10YDQu9C40YUg0LHRltC70YzRiNC1Iix0b3RhbF9kZWF0aF9taW4yLCLQstC40L/QsNC00LrRltCyIikNCiAgICAgICAjLCBjYXB0aW9uID0gIk15IGNhcHRpb24iDQogICAgICAgKSsNCiAgY3JuX3RoZW1lICsgICBzY2FsZV9jb2xvcl9icmV3ZXIocGFsZXR0ZSA9ICJQYWlyZWQiKQ0KDQpwbG90NGwNCg0KYGBgDQoNCg0KDQpgYGB7ciBlY2hvPUZBTFNFLCBmaWcuaGVpZ2h0PTYsIGZpZy53aWR0aD0xMH0NCmdncGxvdGx5KHBsb3Q0bCtnZ3RpdGxlKCIiKSkNCmBgYA0KDQoNCg0KDQoNCmBgYHtyIGZpZy5oZWlnaHQ9NiwgZmlnLndpZHRoPTEwLCBpbmNsdWRlPUZBTFNFfQ0KbWluX2xpbTE8LTEwMDAwDQojY3JuMSAlPiUgZmlsdGVyKHRvdGFsPm1pbl9saW0mIWR1cGxpY2F0ZWQoQ291bnRyeSkpICU+JSBucm93KCkNCiAgDQpwbG90MS4xPC1nZ3Bsb3QoY3JuMSAlPiUgZmlsdGVyKHRvdGFsPm1pbl9saW0xKSwgYWVzKHg9b3JkLHk9SW5mZWN0ZWQpKSArDQogIGdlb21fbGluZShhZXMoY29sb3IgPSBDb3VudHJ5LCBsaW5ldHlwZSA9IENvdW50cnkNCiAgICAgICAgICAgICAgICApLHNpemU9MS41KSArDQogIHNjYWxlX3hfY29udGludW91cyhicmVha3MgPSBzZXEoMCwgMzAsIDUpLGxpbWl0cyA9IGMoMSwgNDApLA0KICAgICAgICAgICAgICAgICAgICAgKSArDQogIHNjYWxlX3lfY29udGludW91cyhicmVha3MgPSBzZXEoMCwgMjAwMDAwLCAyMDAwMCksZXhwYW5kID0gYygwLjAyLDApKSArDQogIHNjYWxlX2xpbmV0eXBlX21hbnVhbCh2YWx1ZXM9c2FtcGxlKGMoMSwyKSxjcm4xICU+JSBmaWx0ZXIodG90YWw+bWluX2xpbTEmIWR1cGxpY2F0ZWQoQ291bnRyeSkpICU+JSBucm93KCkscmVwbGFjZSA9IFQpKSsNCiAgI3NjYWxlX2xpbmV0eXBlX2Rpc2NyZXRlKCkgKw0KICAjc2NhbGVfbGluZXR5cGVfaWRlbnRpdHkoKSArDQogIGxhYnMoeT0i0JrRltC70YzQutGW0YHRgtGMINC30LDRgNCw0LbQtdC90LjRhSIsIHggPSBwYXN0ZTAoItCU0LXQvdGMINC3INGD0LzQvtCy0L3QvtCz0L4g0L/QvtGH0LDRgtC60YMg0LXQv9GW0LTQtdC80ZbRlyAoIixzdGFydF9pLCIg0LLQuNC/0LDQtNC60ZbQsikiKSwNCiAgICAgICB0aXRsZSA9ICLQn9C+0YjQuNGA0LXQvdC90Y8g0LXQv9GW0LTQtdC80ZbRlyBDT1ZJRC0xOSDQsiDRgNGW0LfQvdC40YUg0LrRgNCw0ZfQvdCw0YUiLCANCiAgICAgICBzdWJ0aXRsZSA9IHBhc3RlKCLQmtGA0LDRl9C90Lgg0Lcg0LrRltC70YzQutGW0YHRgtGOINC30LDRgNCw0LbQtdC90LjRhSDQsdGW0LvRjNGI0LUiLG1pbl9saW0xLCLQstC40L/QsNC00LrRltCyIikNCiAgICAgICAjLCBjYXB0aW9uID0gIk15IGNhcHRpb24iDQogICAgICAgKSsNCiAgY3JuX3RoZW1lICsgICBzY2FsZV9jb2xvcl9icmV3ZXIocGFsZXR0ZSA9ICJQYWlyZWQiLGRpcmVjdGlvbj0tMSkNCg0KcGxvdDEuMQ0KDQpgYGANCg0KPC9icj4NCjwvYnI+DQoNCiMjINCU0LjQvdCw0LzRltC60LAg0LrRltC70YzQutC+0YHRgtGWINCy0LjQv9Cw0LTQutGW0LIgQ09WSUQtMTkgDQojIyMjINCa0YDQsNGX0L3QuCDQtyDQutGW0LvRjNC60ZbRgdGC0Y4gINCx0ZbQu9GM0YjQtSBgciBhcy5jaGFyYWN0ZXIobWluX2xpbTEpYCDQstC40L/QsNC00LrRltCyDQo8L2JyPg0KDQpgYGB7ciBmaWcuaGVpZ2h0PTYsIGZpZy53aWR0aD0xMCwgZWNobz1GQUxTRX0NCmdncGxvdGx5KHBsb3QxLjErZ2d0aXRsZSgiIikpIA0KYGBgDQoNCg0KYGBge3IgaW5jbHVkZT1GQUxTRSwgZmlnLmhlaWdodD02LCBmaWcud2lkdGg9MTB9DQptYXhfbGltMjwtMTAwMDANCm1pbl9saW0yPC0zMDAwDQoNCnBsb3QxLjI8LWdncGxvdChjcm4xICU+JSBmaWx0ZXIoKGJldHdlZW4odG90YWwsbWluX2xpbTIsbWF4X2xpbTIpJm4+OCZvcmQ8MzApI3woQ291bnRyeT09IlNwYWluIiZvcmQ8MTYpDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICApLCBhZXMoeD1vcmQseT1JbmZlY3RlZCkpICsNCiAgZ2VvbV9saW5lKGFlcyhjb2xvciA9IENvdW50cnksIGxpbmV0eXBlID0gQ291bnRyeSksc2l6ZT0xLjUpICsNCiAgc2NhbGVfeF9jb250aW51b3VzKGJyZWFrcyA9IHNlcSgwLCAzMCwgNSksbGltaXRzID0gYygxLCAzMCkpICsNCiAgc2NhbGVfeV9jb250aW51b3VzKGJyZWFrcyA9IHNlcSgwLCBtYXhfbGltMiwgMTAwMCksbGltaXRzID0gYygxLCBtYXhfbGltMiksZXhwYW5kID0gYygwLjAyLDApKSArDQogIGxhYnMoeT0i0JrRltC70YzQutGW0YHRgtGMINC30LDRgNCw0LbQtdC90LjRhSIsIHggPSBwYXN0ZTAoItCU0LXQvdGMINC3INGD0LzQvtCy0L3QvtCz0L4g0L/QvtGH0LDRgtC60YMg0LXQv9GW0LTQtdC80ZbRlyAoIixzdGFydF9pLCIg0LLQuNC/0LDQtNC60ZbQsikiKSwNCiAgICAgICB0aXRsZSA9ICLQn9C+0YjQuNGA0LXQvdC90Y8g0LXQv9GW0LTQtdC80ZbRlyBDT1ZJRC0xOSDQsiDRgNGW0LfQvdC40YUg0LrRgNCw0ZfQvdCw0YUiLCANCiAgICAgICBzdWJ0aXRsZSA9IHBhc3RlKCLQmtGA0LDRl9C90Lgg0Lcg0LrRltC70YzQutGW0YHRgtGOINC30LDRgNCw0LbQtdC90LjRhSDQstGW0LQgIixtaW5fbGltMiwgItC00L4iLG1heF9saW0yLCLQstC40L/QsNC00LrRltCyIikNCiAgICAgICAjLCBjYXB0aW9uID0gIk15IGNhcHRpb24iDQogICAgICAgKSsNCiAgY3JuX3RoZW1lICsNCiAgc2NhbGVfY29sb3JfYnJld2VyKHBhbGV0dGUgPSAiUGFpcmVkIikNCg0KcGxvdDEuMg0KDQpgYGANCg0KPC9icj4NCjwvYnI+DQoNCiMjIyMg0JrRgNCw0ZfQvdC4INC3INC60ZbQu9GM0LrRltGB0YLRjiDQstC40L/QsNC00LrRltCyINCy0ZbQtCBgciBtaW5fbGltMmAg0LTQviBgciBhcy5jaGFyYWN0ZXIobWF4X2xpbTIpYA0KDQo8L2JyPg0KDQpgYGB7ciBlY2hvPUZBTFNFLCBmaWcuaGVpZ2h0PTYsIGZpZy53aWR0aD0xMH0NCmdncGxvdGx5KHBsb3QxLjIrZ2d0aXRsZSgiIikpDQpgYGANCg0KDQoNCmBgYHtyIGluY2x1ZGU9RkFMU0UsIGZpZy5oZWlnaHQ9NiwgZmlnLndpZHRoPTEwfQ0KbWF4X2xpbTM8LTM1MDANCm1pbl9saW0zPC0xODAwDQoNCnBsb3QxLjM8LWdncGxvdChjcm4xICU+JSBmaWx0ZXIoKGJldHdlZW4odG90YWwsbWluX2xpbTMsbWF4X2xpbTMpJm4+OCZvcmQ8MzApI3woQ291bnRyeT09IlNwYWluIiZvcmQ8MTYpDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICApLCBhZXMoeD1vcmQseT1JbmZlY3RlZCkpICsNCiAgZ2VvbV9saW5lKGFlcyhjb2xvciA9IENvdW50cnksIGxpbmV0eXBlID0gQ291bnRyeSksc2l6ZT0xLjUpICsNCiAgc2NhbGVfeF9jb250aW51b3VzKGJyZWFrcyA9IHNlcSgwLCAzMCwgNSksbGltaXRzID0gYygxLCAzMCkpICsNCiAgc2NhbGVfeV9jb250aW51b3VzKGJyZWFrcyA9IHNlcSgwLCBtYXhfbGltMywgNTAwKSxsaW1pdHMgPSBjKDEsIG1heF9saW0zKSxleHBhbmQgPSBjKDAuMDIsMCkpICsNCiAgbGFicyh5PSLQmtGW0LvRjNC60ZbRgdGC0Ywg0LfQsNGA0LDQttC10L3QuNGFIiwgeCA9IHBhc3RlMCgi0JTQtdC90Ywg0Lcg0YPQvNC+0LLQvdC+0LPQviDQv9C+0YfQsNGC0LrRgyDQtdC/0ZbQtNC10LzRltGXICgiLHN0YXJ0X2ksIiDQstC40L/QsNC00LrRltCyKSIpLA0KICAgICAgIHRpdGxlID0gItCf0L7RiNC40YDQtdC90L3RjyDQtdC/0ZbQtNC10LzRltGXIENPVklELTE5INCyINGA0ZbQt9C90LjRhSDQutGA0LDRl9C90LDRhSIsIA0KICAgICAgIHN1YnRpdGxlID0gcGFzdGUoItCa0YDQsNGX0L3QuCDQtyDQutGW0LvRjNC60ZbRgdGC0Y4g0LfQsNGA0LDQttC10L3QuNGFINCy0ZbQtCAiLG1pbl9saW0zLCAi0LTQviIsbWF4X2xpbTMsItCy0LjQv9Cw0LTQutGW0LIiKQ0KICAgICAgICMsIGNhcHRpb24gPSAiTXkgY2FwdGlvbiINCiAgICAgICApKw0KICBjcm5fdGhlbWUgKw0KICBzY2FsZV9jb2xvcl9icmV3ZXIocGFsZXR0ZSA9ICJQYWlyZWQiKQ0KDQpwbG90MS4zDQoNCmBgYA0KDQo8L2JyPg0KPC9icj4NCg0KIyMjIyDQmtGA0LDRl9C90Lgg0Lcg0LrRltC70YzQutGW0YHRgtGOINCy0LjQv9Cw0LTQutGW0LIg0LLRltC0IGByIG1pbl9saW0zYCDQtNC+IGByIG1heF9saW0zYA0KDQo8L2JyPg0KDQpgYGB7ciBlY2hvPUZBTFNFLCBmaWcuaGVpZ2h0PTYsIGZpZy53aWR0aD0xMH0NCmdncGxvdGx5KHBsb3QxLjMrZ2d0aXRsZSgiIikpDQpgYGANCg0KDQoNCmBgYHtyIGV2YWw9RkFMU0UsIGZpZy5oZWlnaHQ9NiwgZmlnLndpZHRoPTEwLCBpbmNsdWRlPUZBTFNFfQ0KbWF4X2xpbTwtMzAwMA0KbWluX2xpbTwtNDAwDQoNCnBsb3Q2PC1nZ3Bsb3QoY3JuMSAlPiUgZmlsdGVyKENvdW50cnkgJWluJSBjKCJUYWl3YW4iLCJTaW5nYXBvcmUiLCJKYXBhbiIpKSwgYWVzKHg9b3JkLHk9SW5mZWN0ZWQpKSArDQogIGdlb21fbGluZShhZXMoY29sb3IgPSBDb3VudHJ5LCBsaW5ldHlwZSA9IENvdW50cnkpLHNpemU9MS41KSArDQogIHNjYWxlX3hfY29udGludW91cyhicmVha3MgPSBzZXEoMCwgNjAsIDEpKSArDQogIHNjYWxlX3lfY29udGludW91cyhicmVha3MgPSBzZXEoMCwgbWF4X2xpbSwgMjAwKSxleHBhbmQgPSBjKDAuMDIsMCkpICsNCiAgbGFicyh5PSLQmtGW0LvRjNC60ZbRgdGC0Ywg0LfQsNGA0LDQttC10L3QuNGFIiwgeCA9IHBhc3RlMCgi0JTQtdC90Ywg0Lcg0YPQvNC+0LLQvdC+0LPQviDQv9C+0YfQsNGC0LrRgyDQtdC/0ZbQtNC10LzRltGXICgiLHN0YXJ0X2ksIiDQstC40L/QsNC00LrRltCyKSIpLA0KICAgICAgIHRpdGxlID0gItCf0L7RiNC40YDQtdC90L3RjyBDT1ZJRC0xOSDQsiDRgNGW0LfQvdC40YUg0LrRgNCw0ZfQvdCw0YUiLCANCiAgICAgICBzdWJ0aXRsZSA9IHBhc3RlKCLQmtGA0LDRl9C90Lgg0Lcg0LrRltC70YzQutGW0YHRgtGOINC30LDRgNCw0LbQtdC90LjRhSDQstGW0LQgIixtaW5fbGltLCAi0LTQviIsbWF4X2xpbSwi0LLQuNC/0LDQtNC60ZbQsiIpDQogICAgICAgIywgY2FwdGlvbiA9ICJNeSBjYXB0aW9uIg0KICAgICAgICkrDQogIGNybl90aGVtZSArDQogIHNjYWxlX2NvbG9yX2JyZXdlcihwYWxldHRlID0gIlBhaXJlZCIpDQoNCnBsb3Q2DQoNCmBgYA0KDQoNCg==